--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / scripts / ci / github-slsa-hashes-desktop-dist.sh
Displaying Raw • Download
scripts/ci/github-slsa-hashes-desktop-dist.sh 005a485d52caa39bfacf0edfe5b91ab9efd3a1b3 (005a485d) Text, 1.36 KB
T8b949e#!/usr/bin/env bash
T8b949e# Emit base64-encoded sha256sum lines for Electron outputs under downloaded artifact roots.
T8b949e# Subject paths are the relative paths passed to sha256sum (stable for slsa-verifier).
Tffa657set -euo pipefail
Tff7b72if Tff7b72[ Ta5d6ff"Te6edf3$#Ta5d6ff" -lt T79c0ff1 Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffusage: Te6edf3$0Ta5d6ff <root> [root...]Ta5d6ff" >Tb4b4b4&T79c0ff2
Tffa657exit T79c0ff1
Tff7b72fi
Te6edf3rootsTff7b72=Tff7b72(Tff7b72)
Tff7b72for d Tff7b72in Ta5d6ff"Te6edf3$@Ta5d6ff"Tb4b4b4; Tff7b72do
Tff7b72[ -d Ta5d6ff"Te6edf3$dTa5d6ff" Tff7b72] Tff7b72&& Te6edf3rootsTff7b72+=Tff7b72(Ta5d6ff"Te6edf3$dTa5d6ff"Tff7b72)
Tff7b72done
Tff7b72if Tff7b72[ Ta5d6ff"Tffd700${#Te6edf3rootsTb4b4b4[@]Tffd700}Ta5d6ff" -eq T79c0ff0 Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffNo existing directories in: Te6edf3$*Ta5d6ff (emitting empty hashes)Ta5d6ff" >Tb4b4b4&T79c0ff2
Tff7b72if Tff7b72[ -n Ta5d6ff"Tffd700${Te6edf3GITHUB_OUTPUTTff7b72:-Tffd700}Ta5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"hashes=" >>Ta5d6ff"Te6edf3$GITHUB_OUTPUTTa5d6ff"
Tff7b72else
Tffa657printf Ta5d6ff'%s\n' Ta5d6ff""
Tff7b72fi
Tffa657exit T79c0ff0
Tff7b72fi
Te6edf3tmpTff7b72=Ta5d6ff"Tff7b72$(mktempTff7b72)Ta5d6ff"
Tffa657trap Ta5d6ff'rm -f "$tmp"' EXIT
find Ta5d6ff"Tffd700${Te6edf3rootsTb4b4b4[@]Tffd700}Ta5d6ff" -type f Tffea00\( Tffea00\
-name Ta5d6ff'*.exe' -o -name Ta5d6ff'*.dmg' -o -name Ta5d6ff'*.blockmap' -o Tffea00\
Tffea00\( -name Ta5d6ff'*.yml' ! -name Ta5d6ff'*.so.yml' Tffea00\) -o Tffea00\
Tffea00\( -name Ta5d6ff'*.yaml' ! -name Ta5d6ff'*.so.yaml' Tffea00\) Tffea00\
Tffea00\) ! -name Ta5d6ff'library.zip' ! -path Ta5d6ff'*/.*' -print0 Tffea00\
Tb4b4b4| Te6edf3LC_ALLTff7b72=C sort -z Tffea00\
Tb4b4b4| xargs -0r sha256sum >Ta5d6ff"Te6edf3$tmpTa5d6ff"
Tff7b72if Tff7b72[ ! -s Ta5d6ff"Te6edf3$tmpTa5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffNo matching dist files under: Tffd700${Te6edf3rootsTb4b4b4[*]Tffd700}Ta5d6ff (emitting empty hashes)Ta5d6ff" >Tb4b4b4&T79c0ff2
Te6edf3b64Tff7b72=Ta5d6ff""
Tff7b72if Tff7b72[ -n Ta5d6ff"Tffd700${Te6edf3GITHUB_OUTPUTTff7b72:-Tffd700}Ta5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffhashes=Tffd700${Te6edf3b64Tffd700}Ta5d6ff" >>Ta5d6ff"Te6edf3$GITHUB_OUTPUTTa5d6ff"
Tff7b72else
Tffa657printf Ta5d6ff'%s\n' Ta5d6ff"Te6edf3$b64Ta5d6ff"
Tff7b72fi
Tffa657exit T79c0ff0
Tff7b72fi
Te6edf3b64Tff7b72=Ta5d6ff"Tff7b72$(base64 -w0 <Ta5d6ff"Te6edf3$tmpTa5d6ff"Tff7b72)Ta5d6ff"
Tff7b72if Tff7b72[ -n Ta5d6ff"Tffd700${Te6edf3GITHUB_OUTPUTTff7b72:-Tffd700}Ta5d6ff" Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Ta5d6ffhashes=Tffd700${Te6edf3b64Tffd700}Ta5d6ff" >>Ta5d6ff"Te6edf3$GITHUB_OUTPUTTa5d6ff"
Tff7b72else
Tffa657printf Ta5d6ff'%s\n' Ta5d6ff"Te6edf3$b64Ta5d6ff"
Tff7b72fi
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────